35 research outputs found

    A Certified Polynomial-Based Decision Procedure for Propositional Logic

    Get PDF
    In this paper we present the formalization of a decision procedure for Propositional Logic based on polynomial normalization. This formalization is suitable for its automatic verification in an applicative logic like Acl2. This application of polynomials has been developed by reusing a previous work on polynomial rings [19], showing that a proper formalization leads to a high level of reusability. Two checkers are defined: the first for contradiction formulas and the second for tautology formulas. The main theorems state that both checkers are sound and complete. Moreover, functions for generating models and counterexamples of formulas are provided. This facility plays also an important role in the main proofs. Finally, it is shown that this allows for a highly automated proof development

    A verified Common Lisp implementation of Buchberger's algorithm in ACL2

    Get PDF
    In this article, we present the formal verification of a Common Lisp implementation of Buchberger's algorithm for computing Gröbner bases of polynomial ideals. This work is carried out in ACL2, a system which provides an integrated environment where programming (in a pure functional subset of Common Lisp) and formal verification of programs, with the assistance of a theorem prover, are possible. Our implementation is written in a real programming language and it is directly executable within the ACL2 system or any compliant Common Lisp system. We provide here snippets of real verified code, discuss the formalization details in depth, and present quantitative data about the proof effort

    Análisis híbrido: una propuesta práctica

    Get PDF
    Este artículo defiende la necesidad de introducir el análisis híbrido en las prácticas de las asignaturas en las que se imparte análisis y diseño de algoritmos secuenciales, y presenta un entorno de trabajo adecuado para su realización en el laboratorio. Esta técnica de análisis es una mezcla de las técnicas tradicionales de análisis teórico y empírico: en el análisis híbrido se emplea la primera de ellas para establecer un modelo y la segunda para obtener datos experimentales que, por último, permiten ajustar el modelo mediante regresión

    Una propuesta para una primera asignatura de Algoritmia

    Get PDF
    En este trabajo presentamos nuestra experiencia con una nueva organización curricular para la materia de análisis y diseño de algoritmos en los primeros cursos de los estudios de Informática y realizamos una propuesta docente para una asignatura introductoria

    Un algoritmo híbrido para el problema NRP con interdependencias

    Get PDF
    En este artículo presentamos un algoritmo híbrido para una variante del problema de la siguiente versión (NRP). En esta variante existe un conjunto de requisitos para los que se dispone de una estimación del esfuerzo necesario para su implementación y de la satisfacción percibida por los potenciales clientes con la inclusión de dichos requisitos. Entre estos requisitos existen relaciones de interdependencia, que establecen a ciertos requisitos como prerequisitos de otros, o que obligan a implementar determinados requisitos simultáneamente en caso de incluirse alguno de ellos en la siguiente versión del producto a desarrollar. Dado un límite superior de esfuerzo prefijado, el objetivo es seleccionar un subconjunto de requisitos que cumpla todas las restricciones y maximice la satisfacción global de los clientes. La propuesta combina heurísticas con técnicas exactas para una versión simplificada del problema. El rendimiento del algoritmo resultante en distintos escenarios realistas se compara con el de otras técnicas metaheurísticas previamente empleada

    Verified Computer Algebra in ACL2 (Gröbner Bases Computation)

    Get PDF
    In this paper, we present the formal verification of a Common Lisp implementation of Buchberger’s algorithm for computing Gröbner bases of polynomial ideals. This work is carried out in the Acl2 system and shows how verified Computer Algebra can be achieved in an executable logic

    La biblioteca estándar de C

    Get PDF
    Hace ya algunos años que, como parte de las prácticas de una asignatura de Metodología de la Programación, enseñamos el lenguaje C. Y ya desde los primeros nos dimos cuenta de que en casi todos los libros y cursos de C falta algo. Este «algo» es lo que pretendemos llenar con este libro: una relación completa de las funciones y macros que componen la Biblioteca Estándar de C. A lo largo de estos años hemos manejado muchos libros de C; unos muy buenos y otros no tanto. En todos aparecen al principio las funciones printfO y scanf(). Más tarde se estudian las cadenas de caracteres y surgen strlenf), strcpyO y algunas más. No puede faltar un capítulosobre ficheros y en él no faltan fopen(), fgetcO, etc.206 págs

    Class mutation operators for C++ object-oriented systems

    Get PDF
    Mutation testing is a fault injection testing technique around which a great variety of studies and tools for different programming languages have been developed. Nevertheless, the mutation testing research with respect to C++ is pending. This paper proposes a set of class mutation operators related to this language and its particular object-oriented (OO) features. In addition, an implementation technique to apply mutation testing based on the traversal of the abstract syntax tree (AST) is presented. Finally, an experiment is conducted to study the operator behaviour with different C++ programs, suggesting their usefulness in the creation of complete test suites. The analysis includes a Web service (WS) library, one of the domains where this technique can prove useful, considering its challenging testing phase and that C++ is still a reference language for critical distributed systems WS

    Class mutation operators for C++ object-oriented systems

    Get PDF
    Mutation testing is a fault injection testing technique around which a great variety of studies and tools for different programming languages have been developed. Nevertheless, the mutation testing research with respect to C++ is pending. This paper proposes a set of class mutation operators related to this language and its particular object-oriented (OO) features. In addition, an implementation technique to apply mutation testing based on the traversal of the abstract syntax tree (AST) is presented. Finally, an experiment is conducted to study the operator behaviour with different C++ programs, suggesting their usefulness in the creation of complete test suites. The analysis includes a Web service (WS) library, one of the domains where this technique can prove useful, considering its challenging testing phase and that C++ is still a reference language for critical distributed systems WS
    corecore